package com.ys.day31.p2远程json解析转换;

import org.json.JSONArray;
import org.json.JSONObject;

import java.util.ArrayList;

/**
 * 描述:
 *
 * @author CodeYang
 * @version 2021/1/18 13:00
 */
public class P1远程JSON对象转为Java对象输出 {

    private  final  static String URL_PATH="https://douhuvillage.cn/json/jsonarr.json";

    public static void main(String[] args) {
        // 1从网络资源下载到本地
        // 核心: 还是把 json 转 Java 或者 java 转 json
        try {

             String jsonData = JSONUtils.downJsonData(URL_PATH);
            // 我们已经知道是一个 arrjson了 json arr 转 java
             JSONArray jsonArray = new JSONArray(jsonData);


            int length = jsonArray.length();

            // 使用循环来 把数据注入对象
            ArrayList<Course> courseArrayList = new ArrayList<>();

            for (int i = 0; i < length; i++) {
               // 根据下标获取 jsonarr里的每一个 数据
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                // 获取对象里面的键值对，根据key获取value
                // 此时的key必须跟服务器的key一致，否则抛出异常
                Course course = new Course(jsonObject.getString("courseName"), jsonObject.getInt("score"));
                courseArrayList.add(course);

            }
           courseArrayList.forEach(System.out::println);
                



        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
